git撤销commit ,并且保留修改 您所在的位置:网站首页 取消commit idea git撤销commit ,并且保留修改

git撤销commit ,并且保留修改

2024-02-15 15:30| 来源: 网络整理| 查看: 265

问题背景

在多人协作开发的项目中,一般都是从master中新建一个分支进行修改开发,完了就提交、合并、删除分支。可很多时候就是不长记性,分支也不建直接在master上开干,做完之后一顿操作梦如虎,git status -> git add . -> git commit -m ‘’ 一气呵成,当正要提交的时候,瞄了一下编辑器左下角,吗惹,怎么还在master分支上,凉凉~~~~~~~ 未等我汗滴留下来,心想,git那么强大的工具,对于这种情况的处理肯定有完整的回退解决方案的吧,一查吗,果不其然,哈哈哈哈

解决步骤 1、看下提交记录

命令:

git log

不过这样输出比较琐碎难看,一般来说是通过以下这句来查看提交记录:

git log --pretty=oneline

在这里插入图片描述 每行前面那串长长的东西就是每次提交所生产的唯一标识,其实就是哈希值,这个标识很有用,回退到哪个版本全靠它

2、回退到上次提交,并且保留修改 git reset --soft 319c879dc5ff2d18d71164523c2009da6bcf2011 //假设这串东西是修改之前的最近一次提交的哈希值

这样就会恢复到没有commit前的状态,而且最重要的是!我们的修改还在,oh no 太强大了 注意,git --reset 后面跟的可以是soft或者hard,如果是hard的话,就是简单粗暴,回退的同时修改也会不见,所以一般不建议用hard。

3、暂存修改,切换分支

先把修改暂存起来,然后查看分支状态,嗯,很干净,赶紧切个分支再说,切到新的分支再把修改的内容恢复到当前分支岂不是美滋滋,就这么干

git stash

这样就把修改暂存起来了, 执行 git status查看当前分支状态,ok, 暂存之后空空如也~~~

然后赶紧切换个分支:

git checkout -b 分支名

这个命令是新建分支再切到新建分支,如果原本就有分支的就直接git checkout 分支名 就可以了

4、恢复暂存、添加 提交猛如虎

好的,来到现在这个分支,加入分支名为dev 首先,看下暂存的东西

git stash list

就像这样,前面的stash@{0}就是暂存的标识,因为同一分支可能有很多暂存内容,我们可以选择性的恢复暂存 在这里插入图片描述

对于只有一个暂存的情况,直接使用以下命令恢复暂存到工作区:

git stash pop

看下当前工作状态,嗯,哭了,回来了 ----

最后

提交 -> 推送 ->合并 -> 删除分支(删不删随意)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有